package com.szxy.lambda;

import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;

/**
 * @Author:zwer
 * @Date:2020/4/15 23:31
 * @Description:com.szxy.lambda
 * @Version:1.0
 **/
public class LambdaGrammarTest {

    @Test
    public void test1() {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(6);
        list.add(2);
        list.add(7);

        // Lambda 表达式语法的基本形式
        list.forEach((Integer num) -> {
            System.out.println(num);
        });

        // 省略形参类型
        list.forEach((num) -> {
            System.out.println(num);
        });

        // 省略 （）
        list.forEach(num -> {
            System.out.println(num);
        });

        // 省略 {} 和  ；
        list.forEach(num -> System.out.println(num));

    }

    @Test
    public void test2() {
//        TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return Integer.compare(o1, o2);
//            }
//        });

        TreeSet<Integer> ts = new TreeSet<>(( o1,  o2) -> Integer.compare(o1, o2));

        ts.add(1);
        ts.add(-2);
        ts.add(3);
        ts.add(0);

        ts.forEach(num -> System.out.println(num));
    }
}
